/**
 * 构造树型结构数据
 * @param {*} data 数据源
 * @param {*} id id字段 默认 'id'
 * @param {*} parentId 父节点字段 默认 'pid'
 * @param {*} children 孩子节点字段 默认 'children'
 * @param {*} rootId 根Id 默认 0
 */
export function handleTree(data, id, parentId, children, rootId,returnChildren) {
	id = id || 'id'
	parentId = parentId || 'pid'
	children = children || 'children'
	returnChildren = returnChildren || 'children'
	rootId = rootId || '0'
	//对源数据深度克隆
	const cloneData = JSON.parse(JSON.stringify(data))
	//循环所有项
	const treeData = cloneData.filter(father => {
		let branchArr = cloneData.filter(child => {
			//返回每一项的子级数组
			return father[id] === child[parentId]
		});
		branchArr.length > 0 ? father[returnChildren] = branchArr : '';
		//返回第一层
		return father[parentId] === rootId;
	});
	return treeData != '' ? treeData : data;
}

/**
 * 寻找字段并修改
 * @param {object} obj 
 * @param {string} field 
 * @param {any} data 
 */
export function deepChangeData(obj,field,data){
    const fields = field.split(".")
    const len = fields.length-1;
    fields.reduce((current,item,index)=>{
		if(current === null || current === void 0){
			return;
		}
        if(len === index){
            current[item] = data
            return;
        }
        return current[item]
    },obj)
}